package com.project.mapper.core;

import com.project.mapper.common.BaseMapper;
import com.project.model.core.Admin;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface AdminMapper extends BaseMapper<Admin, Long> {

    /**
     * 获取admin、role级联集合
     *
     * @param admin
     * @return
     */
    List<Admin> getAdminCascadeRole(Admin admin);

    /**
     * 根据adminId获取角色名字集合
     *
     * @param adminId
     * @return
     */
    Set<String> getRoleNamesByAdminId(Long adminId);

    /**
     * 根据adminId获取资源链接集合
     *
     * @param adminId
     * @return
     */
    Set<String> getMenuUrlsByAdminId(Long adminId);

    /**
     * 查询数量判断是否重复
     *
     * @param admin
     * @return
     */
    Integer getCountForOnly(Admin admin);

    /**
     * 登录查询列表专用
     *
     * @param admin
     * @return
     */
    List<Admin> selectListForLogin(Admin admin);

    /**
     * 通过角色编码查询具有该角色的人员集合
     *
     * @param roleCode 角色编码
     * @return 人员集合
     */
    List<Admin> getByRoleCode(@Param("roleCode") String roleCode);
}